package com.fire.control.system.module.warning.service;

import java.util.Date;

import com.fire.control.system.dto.UserDTO;
import com.fire.control.system.standard.BusinessInterfaceStandard;
import com.fire.control.system.support.protocol.comman.ResponseProtocol;
import com.fire.control.system.support.protocol.device.DeviceRequestProtocol;

/**
 * 
 * @ClassName:  WarningService
 * @Description:  报警设备业务接口
 * @author:  xiechengguang
 * @date:  2017年5月12日 下午6:09:47
 *
 */
public interface WarningService extends BusinessInterfaceStandard<DeviceRequestProtocol, ResponseProtocol> {
	/**
	 * 
	 * @Title: getSolvedWarnings   
	 * @Description: 已处理完成报警设备列表
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getSolvedWarnings(DeviceRequestProtocol requestProtocol, UserDTO user);
	
	/**
	 * 
	 * @Title: deleteSolvedWarning   
	 * @Description: 删除已完成处理报警设备信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol deleteSolvedWarning(DeviceRequestProtocol requestProtocol);
	
	/**
	 * 
	 * @Title: searchSolvedWarnings   
	 * @Description: 按条件搜索已完成报警设备列表  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol searchSolvedWarnings(DeviceRequestProtocol requestProtocol, UserDTO user);
	
	/**
	 * 
	 * @Title: getUnsolvedWarnings   
	 * @Description: 获取为处理的报警设备列表  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getUnsolvedWarnings(DeviceRequestProtocol requestProtocol, UserDTO user);
	/**
	 * 
	 * @Title: ignoreWarning   
	 * @Description: 忽略误报 报警设备信息    
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol ignoreWarning(DeviceRequestProtocol requestProtocol);
	
	/**
	 * 
	 * @Title: searchUnsolvedWarnings   
	 * @Description: 按条件搜索未处理的报警设备列表  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol searchUnsolvedWarnings(DeviceRequestProtocol requestProtocol, UserDTO user);
	
	/**
	 * 
	 * @Title: getWarningModeList   
	 * @Description: 报警模式设置列表
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getWarningModeList(DeviceRequestProtocol requestProtocol); 
	
	/**
	 * 
	 * @Title: deleteWarningMode   
	 * @Description: 删除报警模式设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol deleteWarningMode(DeviceRequestProtocol requestProtocol); 
	
	/**
	 * 
	 * @Title: deleteWarningMode   
	 * @Description: 修改报警模式设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol updateWarningMode(DeviceRequestProtocol requestProtocol); 
	
	/**
	 * 
	 * @Title: addWarningMode   
	 * @Description: 新增报警模式设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol addWarningMode(DeviceRequestProtocol requestProtocol); 
	
	/**
	 * 
	 * @Title: getMsgPushList   
	 * @Description: 报警推送设置列表
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getMsgPushList(DeviceRequestProtocol requestProtocol, UserDTO user); 
	
	/**
	 * 
	 * @Title: deleteMsgPushSet   
	 * @Description: 删除报警推送设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol deleteMsgPushSet(DeviceRequestProtocol requestProtocol); 
	
	/**
	 * 
	 * @Title: addMsgPushSet   
	 * @Description: 新增报警推送设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol addMsgPushSet(DeviceRequestProtocol requestProtocol, UserDTO user); 
	
	/**
	 * 
	 * @Title: addMsgPushSet   
	 * @Description: 添加默认报警推送设置信息    
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public void addDefaultMsgPushSet(String companyId); 
	
	/**
	 * 
	 * @Title: updateMsgPushSet   
	 * @Description: 修改报警推送设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol updateMsgPushSet(DeviceRequestProtocol requestProtocol, UserDTO user); 
	
	/**
	 * 
	 * @Title: getMsgPushSetById   
	 * @Description: 获取报警推送设置信息  
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol getMsgPushSetById(DeviceRequestProtocol requestProtocol); 
	
	
	
	/**
	* @Title: insertWarning
	* @Description: TODO(触发报警协议)
	* @author wanbo
	* @date  2017年6月19日 下午6:12:30
	* @param dev
	* @param mqttMsg
	*/
	public void changeWarningProtocol(String devEUI,String fPort,String warningType,Date startTime,String warningDesc,String msg);
	
	
	/**
	* @Title: insertWarning
	* @Description: TODO(新增报警信息)
	* @author wanbo
	* @date  2017年7月7日 上午10:48:53
	* @param deviceId
	* @param onlineStatus
	* @param warningType
	* @param warningDesc
	* @param warningTime
	* @param mqttMsg
	*/
	public void insertWarning(String deviceId,String onlineStatus,String warningType,String warningDesc,Date warningTime,String mqttMsg);
	
	
	/**
	 * 
	 * @Title: applyforMaintence   
	 * @Description: 申请维保 
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol applyforMaintence(DeviceRequestProtocol requestProtocol, UserDTO user); 
	
	
	/**
	 * 
	 * @Title: manualSendWarnings   
	 * @Description: 手动推送报警信息
	 * @param:  requestProtocol      
	 * @return: ResponseProtocol      
	 * @throws
	 */
	public ResponseProtocol manualSendWarnings(DeviceRequestProtocol requestProtocol); 
	
	
	
}
